// 导入数据库的对象
const db = require('../config/db');

module.exports = {
    // 1. 获取导航列表
    getNavList() {
        return new Promise((resolve, reject) => {
            db.query(`select * from c_nav`)
                .then(
                    rows => {
                        resolve({
                            code: 200,
                            msg: '获取导航列表成功。',
                            result: [...rows]
                        })
                    }
                )
                .catch(
                    err => {
                        reject({
                            code: -1,
                            msg: '获取导航列表失败。',
                            err
                        })
                    }
                )
        })
    },

    // 2. 添加/发布导航（中端）
    addNav(nav_name, nav_create_time) {
        return new Promise((resolve, reject) => {
            let sql = `select nav_name from c_nav where nav_name = '${nav_name}'`;
            db.query(sql)
                .then(
                    arr => {
                        // 添加导航
                        if (arr.length == 0) {
                            // 导航id
                            let nav_id = Math.random().toString().slice(2);
                            db.query(`insert into c_nav(nav_id,nav_name,nav_create_time) values('${nav_id}','${nav_name}','${nav_create_time}')`)
                                .then(
                                    rows => {
                                        resolve({
                                            code: 200,
                                            msg: '添加导航名称成功。'
                                        })
                                    }
                                )
                                .catch(
                                    err => {
                                        reject({
                                            code: -1,
                                            msg: '添加导航名称失败。'
                                        })
                                    }
                                )
                        }
                        else {
                            resolve({
                                code: 1,
                                msg: '该导航已经存在。'
                            })
                        }
                    }
                )
                .catch(
                    error => {
                        reject({
                            code: -1,
                            msg: '添加导航时，查询失败。'
                        })
                    }
                )
        })
    },

    // 3. 删除导航（中端）
    removeNav(id) {
        return new Promise((resolve, reject) => {
            let sql = `delete from c_nav where id = '${id}'`
            db.query(sql)
                .then(
                    rows => {
                        resolve({
                            code: 200,
                            msg: '删除导航成功。'
                        })
                    }
                )
                .catch(
                    err => {
                        reject({
                            code: -1,
                            msg: '删除导航失败。',
                            err
                        })
                    }
                )
        })
    },

    // 4. 编辑导航（中端）
    editNav(id, nav_name) {
        return new Promise(async (resolve, reject) => {
            let sql = `update c_nav set nav_name= '${nav_name}' where  id= '${id}'`;
            await db.query(sql)
                .then(
                    // 符合条件回调
                    rows => {
                        // console.log('rows:',rows)
                        resolve({
                            code: 200,
                            msg: '修改导航名称成功。'
                        })
                    },
                    // 不符合条件的回调
                    err => {
                        reject({
                            code: -1,
                            msg: '修改导航名称失败。'
                        })
                    }
                )
            // .catch(
            //     reject({
            //         code: -1,
            //         msg: '修改导航名称失败。'
            //     })
            // )
        })
    }

}